package com.ruoyi.system.mapper;
import com.ruoyi.system.domain.vo.*;
import com.ruoyi.system.entity.PreventionHiddenInfoRecord;
import com.ruoyi.system.entity.PreventionHiddenRegister;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;

/**
 * 隐患录入记录表(PreventionHiddenRegister)表数据库访问层
 * @since 2022-11-22 17:20:34
 */
public interface PreventionHiddenRegisterMapper {

    /**
     * 通过ID查询单条数据
     *
     * @param id 主键
     * @return 实例对象
     */
    PreventionHiddenRegister queryById(Integer id);

    /**
     * 查询指定行数据
     * @param preventionHiddenRegister 查询条件
     * @return 对象列表
     */
    List<PreventionHiddenRegister> queryAllByLimit(PreventionHiddenRegister preventionHiddenRegister);

    /**
     * 查询指定行数据
     * @return 对象列表
     */
    List<PreventionHiddenRegister> queryPreventionHiddenList(PreventionHiddenRegister preventionHiddenRegister);

    /**
     * 查询指定行数据
     * @param preventionHiddenRegister 查询条件
     * @return 对象列表
     */
    List<PreventionHiddenRegister> queryHiddenList(PreventionHiddenRegister preventionHiddenRegister);

    /**
     * 统计总行数
     *
     * @param preventionHiddenRegister 查询条件
     * @return 总行数
     */
    long count(PreventionHiddenRegister preventionHiddenRegister);

    /**
     * 新增数据
     *
     * @param preventionHiddenRegister 实例对象
     * @return 影响行数
     */
    int insert(PreventionHiddenRegister preventionHiddenRegister);

    /**
     * 批量新增数据（MyBatis原生foreach方法）
     *
     * @param entities List<PreventionHiddenRegister> 实例对象列表
     * @return 影响行数
     */
    int insertBatch(@Param("entities") List<PreventionHiddenRegister> entities);

    /**
     * 批量新增或按主键更新数据（MyBatis原生foreach方法）
     *
     * @param entities List<PreventionHiddenRegister> 实例对象列表
     * @return 影响行数
     * @throws org.springframework.jdbc.BadSqlGrammarException 入参是空List的时候会抛SQL语句错误的异常，请自行校验入参
     */
    int insertOrUpdateBatch(@Param("entities") List<PreventionHiddenRegister> entities);

    /**
     * 修改数据
     *
     * @param preventionHiddenRegister 实例对象
     * @return 影响行数
     */
    int update(PreventionHiddenRegister preventionHiddenRegister);

    /**
     * 通过主键删除数据
     *
     * @param id 主键
     * @return 影响行数
     */
    int deleteById(Integer id);

    Map<String, Object> countProgress(@Param("deptId") Integer deptId,@Param("level") String level,@Param("progress") String progress);

    List<Map<String, Object>> countTask(@Param("deptId") Integer deptId,@Param("level") String level);

    List<Map<String, Integer>> countByLevel();

    List<Map<String, Integer>> countByHiddenType(String type);


    List<PreventionCheckTaskCountVO> getHiddenDayTemp(String dayTo);

    List<PreventionCheckTaskCountVO> getHiddenMeekTemp(@Param("weekStart") String weekStart,@Param("weekEnd") String weekEnd);

    List<PreventionCheckTaskCountVO> getHiddenMonthTemp(String monthTo);

    List<PreventionCheckTaskCountVO> getAllHidden();

    /**
     * 隐患清单_全部数据_分页查询
     * @return 对象列表
     */
    List<PreventionHiddenRegister> getHiddenListPage(PreventionHiddenRegister preventionHiddenRegister);

    int getDzgyh(String checkUserName);

    List<PreventionCheckTaskConfigCountVO> getToCountHiddenRemind(String checkUserName);

    List<PreventionCheckTaskConfigCountVO> getToCountHiddenCondition(String checkUserName);

    List<PreventionCheckTaskConfigCountVO> getToCountDeptHiddenPC(PreventionHiddenRegisterCountVO preventionHiddenRegisterCountVO);

    List<PreventionCheckTaskConfigCountVO> getToCountDeptHiddenZG(PreventionHiddenRegisterCountVO preventionHiddenRegisterCountVO);

    List<PreventionCheckTaskConfigCountVO> getToCountHiddenDeptAll();

    List<PreventionCheckTaskConfigCountVO> getToCountDeptAll();

    int getToUserNameCount(String checkUserName);

    int getHiddenYwcCount(String checkUserName);

    int getHiddenDzgCount(String checkUserName);

    int getHiddenDshCount(String checkUserName);

    int getHiddenYcqCount(String checkUserName);

    List<PreventionHiddenInfoRecord> queryPointIdList(Integer pointId);

    List<PreventionHiddenRegister> queryAll(PreventionHiddenRegister preventionHiddenRegister);

    List<PreventionHiddenRegister> getDeptNameList();

    Integer queryHiddenCount(@Param("deptName") String deptName, @Param("startTime") String startTime, @Param("endTime") String endTime);

    Integer queryHiddenZgCount(@Param("deptName") String deptName, @Param("startTime") String startTime, @Param("endTime") String endTime);

    List<PreventionCheckTaskCountVO> sWYhYbAndZdCountTemp();

    List<PreventionHiddenRegisterTimeVO> getYhYbAndZdCountTemp(String month);

    List<String> getListAllMonth();

    Integer queryHiddenCount();

    Integer queryHiddenZgCount();

    Integer getYhcqs();

    int queryHiddenCountTemp();

    int queryHiddenZgCountTemp();

    Integer queryPostHiddenCount(@Param("postName") String deptUserName, @Param("startTime") String startTime, @Param("endTime") String endTime);

    Integer queryPostHiddenZgCount(@Param("postName") String deptUserName, @Param("startTime") String startTime, @Param("endTime") String endTime);

    long countAll(@Param("state") String state,@Param("startTime") String startTime,@Param("endTime") String endTime,@Param("deviceId") Integer deviceId);
}

